Plotly তে 3D Plots তৈরির মাধ্যমে আপনি ডেটার মধ্যে সম্পর্ক বা প্যাটার্ন আরও গভীরভাবে বিশ্লেষণ করতে পারেন। এগুলি ইন্টারেকটিভ গ্রাফ, যা ব্যবহারকারীদের ৩D স্পেসে গ্রাফ রোটেট, জুম ইন/আউট এবং প্যান করার সুবিধা দেয়। এই ফিচারগুলো প্লটের ইন্টারঅ্যাকটিভিটি উন্নত করে এবং ব্যবহারকারীদের জন্য একটি ডাইনামিক এক্সপেরিয়েন্স তৈরি করে।
১. 3D Plot Interaction
Plotly তে 3D গ্রাফগুলির সাথে ব্যবহারকারীরা বিভিন্ন ধরনের ইন্টারঅ্যাকশন করতে পারেন। এর মধ্যে রয়েছে:
- Rotation: ৩D প্লটটি যেকোনো কোণে ঘোরানো যায়, যাতে ডেটার বিভিন্ন দিক বা সম্পর্ক দেখা যায়।
- Zoom: গ্রাফে জুম ইন বা জুম আউট করা যায়, যাতে ডেটা পয়েন্টগুলির মধ্যে আরও বিস্তারিত দেখা যায়।
- Pan: প্লটটিকে প্যান করে, অর্থাৎ গ্রাফের দৃশ্যটিকে সরানো যায়।
- Hover: গ্রাফের উপর মাউস রাখলে ডেটা পয়েন্টের বিস্তারিত তথ্য দেখা যায়।
এই ফিচারগুলো গ্রাফে ডেটার সাথে ইন্টারঅ্যাক্টিভ ভাবে কাজ করার সুযোগ দেয়।
উদাহরণ: 3D Scatter Plot Interaction
import plotly.graph_objects as go
# ৩D Scatter Plot ডেটা
fig = go.Figure(data=[go.Scatter3d(
x=[1, 2, 3, 4, 5],
y=[10, 11, 12, 13, 14],
z=[20, 21, 22, 23, 24],
mode='markers',
marker=dict(size=12, color='blue', opacity=0.8)
)])
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Interactive 3D Scatter Plot",
scene=dict(
xaxis_title='X Axis',
yaxis_title='Y Axis',
zaxis_title='Z Axis'
),
margin=dict(l=0, r=0, b=0, t=0), # মার্জিন সেটিং
)
fig.show()
এখানে, Scatter3d দিয়ে একটি ইন্টারেক্টিভ 3D Scatter Plot তৈরি করা হয়েছে। এই গ্রাফের সাথে ব্যবহারকারী জুম, প্যান এবং রোটেট করতে পারবেন।
২. Rotation Features in 3D Plots
Plotly তে 3D plots রোটেট করা খুব সহজ এবং স্বতঃসিদ্ধ। রোটেট করার জন্য শুধুমাত্র গ্রাফে মাউসের মাধ্যমে ক্লিক এবং ড্র্যাগ করতে হয়। এটি গ্রাফকে যে কোন দিক থেকে দেখতে সাহায্য করে। রোটেটের জন্য সাধারণত ব্যবহারকারীদের কিপ্যাড বা মাউস ব্যবহার করতে হয়।
Plotly তে রোটেটের জন্য বিশেষ কোনো কোডের প্রয়োজন নেই, কারণ এটি ডিফল্টভাবে ইন্টারঅ্যাকটিভ ফিচার হিসেবে দেওয়া হয়।
উদাহরণ: 3D Surface Plot with Rotation
import plotly.graph_objects as go
import numpy as np
# ৩D Surface Plot ডেটা
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# ৩D Surface Plot তৈরি করা
fig = go.Figure(data=[go.Surface(z=z, x=x, y=y)])
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Interactive 3D Surface Plot",
scene=dict(
xaxis_title='X Axis',
yaxis_title='Y Axis',
zaxis_title='Z Axis'
)
)
fig.show()
এখানে, go.Surface() দিয়ে একটি 3D Surface Plot তৈরি করা হয়েছে, এবং ব্যবহারকারীরা এই গ্রাফকে রোটেট করে বিভিন্ন কোণ থেকে দেখতে পারবেন। Plotly ডিফল্টভাবে রোটেশন ফিচার অন্তর্ভুক্ত করে, তাই কোডে কোনো অতিরিক্ত সেটিংসের প্রয়োজন নেই।
৩. Mouse Hover Interaction in 3D Plots
Hover interaction একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ব্যবহারকারীদের গ্রাফের উপর মাউস রাখলে ডেটার বিস্তারিত তথ্য দেখানোর সুযোগ দেয়। এই ফিচারটি ৩D গ্রাফের ক্ষেত্রে আরও কার্যকরী, কারণ গ্রাফে পয়েন্টগুলির অবস্থান এবং মূল্য স্পষ্টভাবে দেখানো যায়।
উদাহরণ: Hover Interaction in 3D Scatter Plot
import plotly.graph_objects as go
# ৩D Scatter Plot ডেটা
fig = go.Figure(data=[go.Scatter3d(
x=[1, 2, 3, 4, 5],
y=[10, 11, 12, 13, 14],
z=[20, 21, 22, 23, 24],
mode='markers',
marker=dict(size=12, color='blue', opacity=0.8),
text=["Point 1", "Point 2", "Point 3", "Point 4", "Point 5"], # Hover text
hoverinfo="text" # Hover text দেখানোর জন্য
)])
fig.show()
এখানে, text এর মধ্যে যে তথ্য দেওয়া হয়েছে তা মাউস হোভার করলে দেখানো হবে। এই ফিচারটি ইন্টারেকটিভ ডেটা ভিজুয়ালাইজেশনের জন্য খুবই কার্যকরী।
৪. Zooming and Panning in 3D Plots
Plotly তে Zooming এবং Panning ফিচারও অন্তর্ভুক্ত রয়েছে, যা ব্যবহারকারীদের প্লটের স্কেল পরিবর্তন করতে এবং প্লটের অংশগুলোকে হালকা বা বিশদভাবে দেখতে সাহায্য করে। Zoom ইন/আউট করতে মাউস স্ক্রল ব্যবহার করতে হয় এবং Pan করতে মাউসের ডান বাটন দিয়ে ক্লিক এবং ড্র্যাগ করতে হয়।
সারাংশ
Plotly তে 3D Plot Interaction এবং Rotation Features ব্যবহারকারীদের গ্রাফের সাথে বিভিন্ন ইন্টারঅ্যাকশন করতে সাহায্য করে, যেমন রোটেশন, জুম, প্যান, এবং হোভার। এই ফিচারগুলো ডেটার বিস্তারিত বিশ্লেষণ এবং ইন্টারেকটিভ এক্সপেরিয়েন্স প্রদান করে। ৩D প্লটগুলো অত্যন্ত শক্তিশালী, এবং Plotly তে এগুলোর ব্যবহার অত্যন্ত সহজ এবং ডিফল্ট ইন্টারঅ্যাকটিভিটি উপলব্ধ থাকে, যা ব্যবহারকারীদের জন্য একটি নিখুঁত গ্রাফিক্যাল অভিজ্ঞতা তৈরি করে।
Read more